package com.meeting.project.business.meeting.domain;

import java.util.List;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import org.apache.commons.lang3.builder.ToStringBuilder;

import com.meeting.framework.aspectj.lang.annotation.Excel;
import com.meeting.framework.web.domain.BaseEntity;
import com.meeting.project.business.record.domain.SignInRecord;

/**
 * 会议信息对象 busi_meeting
 *
 * @author llmaoa
 * @date 2025-08-05
 */
public class Meeting extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 会议ID
     */
    private Long id;

    /**
     * 会议名称
     */
    @Excel(name = "会议名称", sort = 1, width = 30, wrapText = true, needMerge = true)
    private String meetingName;

    /**
     * 主持人
     */
//    @Excel(name = "主持人")
    private String host;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd MM:mm", timezone = "GMT+8")
    @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd MM:mm", sort = 2, needMerge = true)
    private Date startTime;

    @JsonFormat(pattern = "yyyy-MM-dd MM:mm", timezone = "GMT+8")
    @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd MM:mm", sort = 3, needMerge = true)
    private Date endTime;

    /**
     * 会议地点
     */
    @Excel(name = "会议地点", sort = 4, width = 30, wrapText = true, needMerge = true)
    private String meetingAddress;

    /**
     * 应到人数
     */
    @Excel(name = "应到人数", sort = 6, width = 10, needMerge = true, isStatistics = true)
    private Integer meetingPeople;

    /**
     * 会议签到二维码图片
     */
    @Excel(name = "签到二维码图", width = 40, sort = 10, needMerge = true)
    private String meetingImg;

    /**
     * 人员签到信息信息
     */
    @Excel(name = "人员签到信息", sort = 12)
    private List<SignInRecord> signInRecordList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setMeetingName(String meetingName) {
        this.meetingName = meetingName;
    }

    public String getMeetingName() {
        return meetingName;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public String getHost() {
        return host;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public void setMeetingAddress(String meetingAddress) {
        this.meetingAddress = meetingAddress;
    }

    public String getMeetingAddress() {
        return meetingAddress;
    }

    public void setMeetingPeople(Integer meetingPeople) {
        this.meetingPeople = meetingPeople;
    }

    public Integer getMeetingPeople() {
        return meetingPeople;
    }

    public String getMeetingImg() {
        return meetingImg;
    }

    public void setMeetingImg(String meetingImg) {
        this.meetingImg = meetingImg;
    }

    public List<SignInRecord> getSignInRecordList() {
        return signInRecordList;
    }

    public void setSignInRecordList(List<SignInRecord> signInRecordList) {
        this.signInRecordList = signInRecordList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append("id", id)
                .append("meetingName", meetingName)
                .append("host", host)
                .append("startTime", startTime)
                .append("endTime", endTime)
                .append("meetingAddress", meetingAddress)
                .append("meetingPeople", meetingPeople)
                .append("meetingImg", meetingImg)
                .append("signInRecordList", signInRecordList)
                .toString();
    }
}
